package com.cdatos.golGana.pages;

import org.apache.wicket.Session;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.PropertyModel;

import com.cdatos.golGana.model.Usuario;
import com.cdatos.golGana.session.GolGanaSession;

public abstract class BasePage extends WebPage {

	@SuppressWarnings("serial")
	private final class LinkLogout extends Link<String> {

		private LinkLogout(String id) {
			super(id);
		}

		@Override
		public void onClick() {
			setResponsePage(MainPage.class);
		}
	}
	
	public BasePage() {
		super();
		add(new Label("tituloPagina", new PropertyModel<String>(this,"tituloPagina")));
		Usuario u = ((GolGanaSession) Session.get()).getUsuario();
		add(new Label("usuario_logueado", (u != null) ? "Hola, " + u.getNick() : ""));
		LinkLogout linkLogout = new LinkLogout("linkLogout");
		if (!((GolGanaSession) getSession()).isUsuarioLogueado())
			linkLogout.setVisible(false);

		add(linkLogout);
		agregarLinks();	
	}
	
	
	private void agregarLinks() {
		BookmarkablePageLink<Void> linkHome = new BookmarkablePageLink<Void>(
				"linkHome", HomePage.class);
		add(linkHome);

//		BookmarkablePageLink<Void> linkClubes = new BookmarkablePageLink<Void>(
//				"linkClubes", ListaClubes.class);
//		add(linkClubes);
//		MetaDataRoleAuthorizationStrategy.authorize(linkClubes, RENDER,
//				"SIS-ADM,ASOC-ADM");
//
//		BookmarkablePageLink<Void> linkEquipos = new BookmarkablePageLink<Void>(
//				"linkEquipos", ListaEquipos.class);
//		add(linkEquipos);
//		MetaDataRoleAuthorizationStrategy.authorize(linkEquipos, RENDER,
//				"SIS-ADM,ASOC-ADM");
//
//		BookmarkablePageLink<Void> linkJugadores = new BookmarkablePageLink<Void>(
//				"linkJugadores", ListaJugadores.class);
//		add(linkJugadores);
//		MetaDataRoleAuthorizationStrategy.authorize(linkJugadores, RENDER,
//				"SIS-ADM,ASOC-ADM");
//
//		BookmarkablePageLink<Void> linkUsuarios = new BookmarkablePageLink<Void>(
//				"linkUsuarios", ListaUsuarios.class);
//		add(linkUsuarios);
//		MetaDataRoleAuthorizationStrategy.authorize(linkUsuarios, RENDER,
//				"SIS-ADM,ASOC-ADM");
//
//		/*BookmarkablePageLink<Void> linkCampeonatos = new BookmarkablePageLink<Void>(
//				"linkCampeonatos", Campeonato.class);
//		add(linkCampeonatos);
//		MetaDataRoleAuthorizationStrategy.authorize(linkCampeonatos, RENDER,
//				"SIS-ADM");*/
//
//		BookmarkablePageLink<Void> linkFixture = new BookmarkablePageLink<Void>(
//				"linkFixture", ListadoCampeonatos.class);
//		add(linkFixture);
//
//		BookmarkablePageLink<Void> linkSanciones = new BookmarkablePageLink<Void>(
//				"linkSanciones", ListaSanciones.class);
//		add(linkSanciones);
//		MetaDataRoleAuthorizationStrategy.authorize(linkSanciones, RENDER,
//				"SIS-ADM,ASOC-ADM");
//
//		BookmarkablePageLink<Void> linkLogAuditoria = new BookmarkablePageLink<Void>(
//				"linkLogAuditoria", ListaLogAuditoria.class);
//		add(linkLogAuditoria);
//		MetaDataRoleAuthorizationStrategy.authorize(linkLogAuditoria, RENDER,
//				"SIS-ADM,ASOC-ADM");
	}

	public abstract String getTituloPagina();

}
